1. Field of the Invention
The present invention relates to data communications and, more particularly, a system and method for time synchronization in a communication network.
2. Description of the Related Art
Communication networks are used in a very wide range of areas to control work sequences in a decentralized manner. In particular, in industrial automation systems, it is particularly important for the automatic work processes to be coordinated with one another. This is achieved by providing the individual communicating network nodes in the communication network with internal clocks, where synchronization messages are transmitted to synchronize all the internal clocks. The internal clock of a respective network node hereby operates at a corresponding node clock frequency which may, in some instances, be different for the individual network nodes. The clocks are synchronized based on a predefined synchronization clock frequency, where the synchronization messages is transmitted as a function of the synchronization frequency. Consequently, synchronization messages are sent at fixed clock intervals in accordance with the synchronization clock frequency.
The individual synchronization messages transmitted in the communication network contain a pulse counter status of the synchronization clock. Each network node updates this pulse counter status by estimating the number of pulses of the synchronization clock between transmission of the synchronization message at the preceding network node and receipt of the synchronization message at the respective network node. This estimate is generally performed by estimating the pulse ratio (i.e., the Rate Compensation Factor (RCF)) between the reference clock frequency and the node clock frequency of the respective network node. The estimated pulse ratio can then be used to convert the time interval between transmission of a synchronization message at the preceding network node and transmission of the synchronization message at the respective network node, measured in node clock frequency pulses, to synchronization clock frequency pulses. The resulting number of pulses is then added to the pulses of the received synchronization message and a correspondingly updated synchronization message is resent from the corresponding network node. It should be herein noted that the content of a synchronization message can also be represented in time (e.g., nanoseconds), instead of pulses of the synchronization clock. In such a case, the resulting adaptation to the description below should be readily apparent to one skilled in the art.
The use of the PROFINET standard in the field of industrial automation is known, this being an Ethernet which meets industrial requirements. This standard operates in accordance with the principle set out above, according to which the pulse counter statuses in the synchronization messages are updated in the network nodes. PROFINET-based systems generally use the Institute of Electrical and Electronic Engineers (IEEE) standard 1588 to synchronize the internal clocks of the network nodes, where the updating of the pulse counter statuses of the synchronization messages based on the standard is performed in accordance with the principle set out above. According to this standard, synchronization messages are transmitted in succession from one network node to the next in a logical sequence or tree structure. The synchronization messages originate from a master element, which is the first element in the sequence or in the tree structure. The synchronization messages originally contain a time stamp of the counter of a synchronization clock in the master element when a synchronization message was transmitted. The network nodes in the sequence or tree structure act as slave elements that process and forward this information.
An implementation of this standard is described in R. Lupas Scheiterer, C. Na, D. Obradovic and G. Steindl: “Synchronization performance of the Precision Time Protocol in Industrial Automation Networks”, ISPCS07 Special Issue of the IEEE Transactions on Instrumentation and Measurement, June 2009, Volume 58, Issue 6, pp. 1849-1857.
As known from the above described state of the art, a slave element adds all the estimated time delays between transmission of a synchronization message from the preceding slave element and its own transmission of the synchronization message. Based on this, each slave element determines its own estimate of current master clock pulse count, which is referred to herein as “reference master time”. However, the reference master time, as estimated by a slave element, is noisy due to transmission delays and disturbances to the elements and is further discontinuous because it is estimated only upon arrival of the synchronization message to the slave element. These properties limit the number of elements (nodes) that can be simultaneously synchronized with the required accuracy (a typical standard example is 1 microsecond). Moreover, jumps in the synchronized slave times are not permissible for time critical industrial applications.